<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script type="module">
	// 3、改变promise状态和指定回调函数谁先谁后?
	// (1) 都有可能, 正常情况下是先指定回调再改变状态, 但也可以先改状态再指定回调
	{
		// const p = new Promise(function(resolve){
		// 	setTimeout(function(){
		// 		resolve(100)
        //     })
        // });
		// p.then(value=>{
		// 	console.log(value);
        // })
    }
	// (2) 如何先改状态再指定回调?
	// 	① 在执行器中直接调用resolve()/reject()
	{
		// const p = new Promise(function(resolve,reject){
		// 	resolve(100);
        // })
        // p.then(value=>{
		// 	console.log(value);
        // })
    }
	// 	② 延迟更长时间才调用then()
	{
		// const p = new Promise(function(resolve,reject){
		// 	setTimeout(()=>{
		// 		resolve(100);
        //     },100)
        //
		// })
        // setTimeout(()=>{
		// 	p.then(value=>{
		// 		console.log(value);
		// 	})
        // },200)

    }
	// (3) 什么时候才能得到数据?
	// 	① 如果先指定的回调, 那当状态发生改变时, 回调函数就会调用, 得到数据
	{
		// const p = new Promise(function(resolve){
		// 	setTimeout(()=>{
		// 		resolve(200)
        //     })
        // });
		// p.then(value=>{
		// 	console.log(value)
        // })
    }
	// 	② 如果先改变的状态, 那当指定回调时, 回调函数就会调用, 得到数据
	{
		const p = new Promise(function(resolve){
			resolve(100)
        });
		p.then(value=>{
			console.log(value)
        })
    }

</script>
</html>